There are circumstances where a user might want to watch and store voice, video, or other streaming media communication. For example, participants in a phone conversation or videoconference may wish to preserve the meeting for future use. An example in one-way communication is when a user who purchased access to a sporting event delivered over the Internet, wishes to watch the event in real time and also save it for later sharing or reviewing.
Systems designed for low latency consumption and viewing of media often achieve low latency at the expense of reliability. Depending on network conditions, or wireless impairments, or other system-dependent fluctuations, data may be lost or corrupted, and there may be insufficient time or mechanism to repair the data before it must be presented or consumed by the end user. Lost or corrupted data is perceived by the user as some kind of disruption in the media session, for example, silence or distortion in audio or video artifacts in a video session. These impairments, while undesirable, are often considered to be an acceptable tradeoff in exchange for receiving data with low latency.
A current technique for presenting and storing data simply records the data as it is presented to a user, including all disruptions caused by lost or corrupted data. While disruptions are often accepted in low latency applications, if the streaming data is to be stored these artifacts may be highly undesirable. For example, if the user pays for the media stream, they may be highly dissatisfied with anything short of a clean copy. If the user uploads media to the server for relaying and storage, the user may not even be aware that the stored version is damaged, and (much to their regret) may discover the damage only much later when reviewing the archive.
Another current technique for presenting and storing data provides for the transmission of two copies of the data. This technique is very wasteful of bandwidth. For example, if bandwidth is particularly scarce such as in a wireless network, it might require the receiver to remain active on the network for a long period of time after the session has ended, so that the second version of the data may be transmitted. Moreover, where the receiver is a wireless device, the additional time required to receive the second version consumes additional battery power and requires a user to stay within range of the wireless network until the second version is received.
The drawings referred to in this description should not be understood as being drawn to scale except if specifically noted.